from pathlib import Path

from config.dynamic_configuration import ConfigCenter
from service import MessageCore
from service.CallService import CallService
from service.ChatService import ChatService
from service.FileService import FileService

# 文件路径
file_path = Path(r"D:\demo\moonshot-api\static\html\table.html")

if __name__ == '__main__':
    # file_id = FileService.upload_file(file_path)
    # print(file_id)

    file_content = FileService.get_file_content(ConfigCenter.get_file_id())

    code_ask = " ".join([
        "## 补全`AR帐报表`的功能，报表的页面格式跟`订单明细表`一致",
        "## 根据我提供给你的JSON接口说明文档，获取参数",
        "## 参考文件中标记`todo AI_范例`处的代码格式补全AR帐报表的代码",
        "## 代码补全位置在`todo AI_生成`标记的地方，如果存在没标记到的，你需要自己分析应该补在哪里；然后用`todo AI_补充`标记出来",
        "## 创建组件文件时，其样式和函数的调用方式，如：init()必须严格按照我提供给你的模板文件来；必须输出全部的代码script、template、style",
        "## 如果是添加代码，输出必须保证完整；不仅要包含你添加的代码还要包含我模板中的全部代码"
    ])
    code_messages = MessageCore.format_message_content(MessageCore.code_messages, code_ask)

    print(f"编程消息 -> {code_messages}")

    messages = code_messages[:1] + [{"role": "system", "content": file_content}] + code_messages[1:]
    code_msg = ChatService.chat(messages)

    print(f"代码展示 -> {code_msg}")

    code_content = code_msg.content
    call_ask = f"请从以下回答中提取代码并写入文件：{code_content}"
    call_messages = MessageCore.format_message_content(MessageCore.write_messages, call_ask)

    print(f"代码消息 -> {call_messages}")

    call_msg = CallService.call_entrance(call_messages)
    print(call_msg)
